package com.xingjiejian.feature.lambda;

/**
 * 使用Lambda表达式替代匿名类
 * 创建Runnable线程
 * @author XingJiejian
 * @date 2019-5-6
 */
public class Demo1 {
    public static void main(String[] args) {
        // Java 8之前：
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("Before Java8, too much code for too little to do");
            }
        }).start();

        //Java 8方式：使用() -> {} 代替匿名类
        new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

        /**
         * Lambda表达式的几种写法
         * (params) -> expression
         * (params) -> statement
         * (params) -> { statements }
         *
         * 如果你的方法接收两个参数，那么可以写成如下这样：
         * (int even, int odd) -> even + odd
         * 注意：通常都会把lambda表达式内部变量的名字起得短一些。这样能使代码更简短，放在同一行。
         * 所以，在上述代码中，变量名选用a、b或者x、y会比even、odd要好
         */
    }
}
